package com.spa.infrastructure.mapper;

import com.spa.application.command.massagist.WithdrawAccountCommand;
import com.spa.application.command.massagist.WithdrawApplyNewCommand;
import com.spa.application.dto.massagist.WithdrawAccountDTO;
import com.spa.domain.entity.WithdrawAccount;
import com.spa.infrastructure.repository.po.WithdrawAccountPO;
import org.mapstruct.Mapper;
import org.mapstruct.MapperConfig;
import org.mapstruct.Mapping;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
@MapperConfig(unmappedTargetPolicy = ReportingPolicy.WARN)
public interface WithdrawAccountMapperStruct {
    WithdrawAccountMapperStruct INSTANCE = Mappers.getMapper(WithdrawAccountMapperStruct.class);

    WithdrawAccount po2Entity(WithdrawAccountPO po);

    WithdrawAccountPO entity2Po(WithdrawAccount withdrawAccount);

    WithdrawAccount command2Entity(WithdrawAccountCommand withdrawAccountCommand);

    WithdrawAccountDTO entity2DTO(WithdrawAccount withdrawAccountPOLast);

    List<WithdrawAccount> po2Entity4List(List<WithdrawAccountPO> withdrawAccountPOLast);
}
